home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 176-200 / disk_185 / tp_iff_specs / pgtb < prev    next >
Text File  |  1992-05-06  |  5KB  |  124 lines

  1. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  2. * |_o_o|\\  The Software Distillery                    *
  3. * |. o.| || Made available to the Amiga development community        *
  4. * | .  | || the authors:                     BBS:    *
  5. * | o  | ||   Jim Cooper, John Toebes            (919)-471-6436  *
  6. * |  . |//                                *
  7. * ======                                *
  8. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  9.  
  10. Proposal:
  11.     New IFF chunk type, to be named PGTB, meaning ProGram TraceBack.
  12.  
  13. Format:
  14.     'FORM'          - required IFF header
  15.     length        - length of entire form
  16.  
  17.     'PGTB'          - chunk identifier
  18.     length        - longword for length of chunk
  19.  
  20.     'FAIL'          - subfield giving environment at time of crash
  21.     length        - longword length of subfield
  22.     NameLen     - length of program name in longwords (BSTR)
  23.     Name        - program name packed in longwords
  24.     Environment    - copy of AttnFlags field from ExecBase,
  25.               gives type of processor, and existence of
  26.               math chip
  27.     VBlankFreq    - copy of VBlankFrequency field from ExecBase
  28.     PowerSupFreq    - copy of PowerSupplyFrequency field from ExecBase
  29.               above fields may be used to determine whether
  30.               machine was PAL or NTSC
  31.     Starter     - non-zero = CLI, zero = WorkBench
  32.     GURUNum     - exception number of crash
  33.     SegCount    - number of segments for program
  34.     SegList     - copy of seglist for program
  35.               (Includes all seglist pointers, paired with
  36.                sizes of the segments)
  37.  
  38.     'FMEM'          - subfield giving memory status at time of crash
  39.     length        - length in longwords, should always be 6
  40.     chipAvail    - available CHIP memory
  41.     chipMax     - maximum CHIP memory
  42.     chipLargest    - largest free hunk in CHIP memory
  43.     fastAvail    - available FAST memory
  44.     fastMax     - mamimum FAST memory
  45.     fastLargest    - largest free hunk in FAST memory
  46.  
  47.     'REGS'          - register dump subfield
  48.     length        - length of subfield in longwords
  49.     GURUAddr    - PC at time of crash
  50.     Flags        - copy of Condition Code Register
  51.     DDump        - dump of data registers
  52.     ADump        - dump of address registers
  53.  
  54.     'VERS'          - revision of program which created this file
  55.     length        - length of subfield in longwords
  56.     version     - main version of writing program
  57.     revision    - minor revision level of writing program
  58.     TBNameLen    - length of name of writing program
  59.     TBName        - name of writing program packed in longwords (BSTR)
  60.  
  61.     'STAK'          - stack dump subfield
  62.     length        - length of subfield in longwords
  63.     (type)          - tells type of stack subfield, which can be any of
  64.               the following:
  65.         -----------------------------------------------------------
  66.         Info        - value 0
  67.         StackTop    - address of top of stack
  68.         StackPtr    - stack pointer at time of crash
  69.         StackLen    - number of longwords on stack
  70.  
  71.         -----------------------------------------------------------
  72.         Whole stack    - value 1
  73.                   only used if total stack to be dumped is 8k
  74.                   or less in size
  75.         Stack        - dump of stack from current to top
  76.  
  77.         -----------------------------------------------------------
  78.         Top 4k        - value 2
  79.                   if stack used larger than 8k, this part
  80.                   is a dump of the top 4k
  81.         Stack        - dump of stack from top - 4k to top
  82.  
  83.         -----------------------------------------------------------
  84.         Bottom 4k    - value 3
  85.                   if stack used larger than 8k, this part
  86.                   is a dump of the bottom 4k
  87.         Stack        - dump of stack from current to current + 4k
  88.  
  89.         -----------------------------------------------------------
  90.         User defined    - value 4
  91.                   user specifies amount of stack he wants
  92.                   to see.  If specified amount is greater
  93.                   than total used, only amount USED gets
  94.                   dumped.  This is the only way to get
  95.                   around the built-in 8k limit on stack
  96.                   dumps.
  97.         Stack        - Whatever was asked for, from current.
  98.  
  99.         In other words, we will dump a maximum of 8k of stack data,
  100.         unless the user asked for more SPECIFICALLY.  This does NOT
  101.         mean the stack must be less than 8k in size to dump the
  102.         entire stack, just that the amount of stack USED be less
  103.         than 8k.
  104.  
  105.     'UDAT'          - Optional User DATa chunk.  If the user assigns
  106.               a function pointer to the label "_ONGURU", the
  107.               catcher will call this routine prior to closing
  108.               the SnapShot file, passing one parameter on the
  109.               stack - an AmigaDOS file pointer to the SnapShot
  110.               file.  Spec for the _ONGURU routine:
  111.  
  112.                 void <function name>(fp)
  113.                 long fp;
  114.  
  115.               In other words, your routine must be of type 'void'
  116.               and must take one parameter, an AmigaDOS file
  117.               handle (which AmigaDOS wants to see as a LONG).
  118.     length        - length of the UserDATa chunk, calculated after the
  119.               user routine terminates.
  120.  
  121. Commodore has agreed to add this as an official IFF type, as of the last
  122. Developer's Conference.
  123.  
  124.